import requests
from random import choice

# 来自 https://www.cnblogs.com/zaxtyson/p/11628746.html

def get_json(url):
    return requests.get(url).json() or dict()

# 岁月小筑随机背景API
def xjh():
    url = 'https://img.xjh.me/random_img.php?return=json'
    data = get_json(url)
    return 'http:' + data.get('img')

# 墨天逸
def mtyqx():
    url = 'http://api.mtyqx.cn/api/random.php?return=json'
    return get_json(url).get('imgurl')

# 随机动漫壁纸
def paugram():
    '''
    sm  可用  sm.ms 图床，国外速度较快，部分浏览器会阻止访问
    cp  可用  Coding Pages 服务托管，服务器位于香港，部分移动网络无法访问
    gt  可用  Gitee Pages 服务托管，服务器位于国内，速度稳定
    sina    可用  新浪微博相册，国内速度较快，已更换新地址
    gh  可用  存放在 GitHub 上的图片资源，基于 JSDelivr 托管，速度非常理想
    '''
    source_list = ['sm', 'cp', 'gt', 'sina', 'gh']
    source = choice(source_list)
    return 'https://api.paugram.com/wallpaper/?source=' + source


# 随机壁纸
# https://api.btstu.cn/doc/sjbz.php
def btstu():
    '''
    请求参数：
        名称    必填  类型    说明
        method  否   string  输出壁纸端[mobile|pc|zsy]默认为pc
        lx      否   string  选择输出分类[meizi|dongman|fengjing|suiji]，为空随机输出
        format  否   string  输出壁纸格式[json|images]默认为images
    返回参数：
        名称    类型     说明
        code    string  返回的状态码
        imgurl  string  返回图片地址
        width   string  返回图片宽度
        height  string  返回图片高度
    '''
    methods = ['mobile', 'pc', 'zsy']
    lxs = ['meizi', 'dongman', 'fengjing', 'suiji', '']

    url = 'https://api.btstu.cn/sjbz/api.php?method={}&lx={}'.format(choice(methods), choice(lxs))
    if choice([True, False]):
        return url + '&format=images'
    else:
        url = url + '&format=json'
        return get_json(url).get('imgurl')



func_list = [xjh, mtyqx, paugram, btstu]

def random_picture():
    func = choice(func_list)
    ret = func()
    return ret


